(: on s'intéresse au patron morphosyntaxique : NOUN ADP NOUN ADP :)
(: dans le fichier de sortie UDPipe reformaté en XML :
chaque phrase est dans une balise
chaque token est dans une balise -
une balise
- contient 10 balises
la 2eme balise contient la forme du token (son texte)
la 4eme balise correspond à l'étiquette morpho-syntaxique du token (son POS) :)
for $item in collection("C:\Users\Marin\Documents\01 Master TAL\02 M1 S2\05 Programmation et projet encadré 2\BAO3_3546_voyage_udpipe.xml")//item
where
$item[contains(a[4]/text(),'NOUN')][following-sibling::*[1][contains(a[4]/text(),'ADP')]][following-sibling::*[2][contains(a[4]/text(),'NOUN')]][following-sibling::*[3][contains(a[4]/text(),'ADP')]]
(: on récupère dans la variable $formeDep la forme du dépendant
dans la variable $positionDep l'identifiant du dépendant
dans la variable $positionGouv l'identifiant du gouverneur :)
let $forme1:=$item/a[2]/text()
let $forme2:=$item/following-sibling::*[1]/a[2]/text()
let $forme3:=$item/following-sibling::*[2]/a[2]/text()
let $forme4:=$item/following-sibling::*[3]/a[2]/text()
(: on concatène les éléments avec des espaces
et on stocke la liste de toutes les séquences dans la variable $res :)
let $res:= string-join(($forme1, $forme2, $forme3, $forme4)," ")
(: on regroupe les séquences :)
group by $grp:=$res
(: on compte le nombre d'occurrences de chaque séquence et on les trie par ordre décroissant :)
order by count($res) descending
(: on concatène la séquence + une tabulation + le nombre d'occurrences
et on affiche le tout :)
return string-join(($grp,count($res))," ")